package com.shujia.spark

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

import scala.collection.mutable

object Demo5FlatMap {
  def main(args: Array[String]): Unit = {
    val conf: SparkConf = new SparkConf()
      .setAppName("Demo5FlatMap")
      .setMaster("local")

    val sc = new SparkContext(conf)


    val linesRDD: RDD[String] = sc.parallelize(List("java,spark,java", "spark,scala,hadoop"))

    /**
      * flatMap: 将rdd的数据一条一条传递给后面的函数，
      * 函数的返回值是一个集合，最后会将这个集合拆分出来构建成一个新的rdd
      *
      */

    val wordsRDD: RDD[String] = linesRDD.flatMap(line => {
      val arr: Array[String] = line.split(",")
      //返回值可以是及一个数组，list,set map ，必须是scala中的集合
      arr.toList
    })

    wordsRDD.foreach(println)

  }

}
